/**
*┌──────────────────────────────────────────────────────────────┐
*│　描    述：Manager                                                    
*│　作    者：NetCoreCMS                                              
*│　版    本：1.0   模板代码自动生成                                              
*│　创建时间：2019-12-25 10:52:46                           
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│　命名空间： NetCoreCMS.IServices                                   
*│　接口名称： IManagerRepository                                      
*└──────────────────────────────────────────────────────────────┘
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace NetCoreCMS.IServices
{
    public interface IManagerService
    {
        /// <summary>
        /// 是否存在该记录
        /// </summary>
        bool Exists(int id);
        /// <summary>
        /// 查询用户名是否存在
        /// </summary>
        bool Exists(string user_name);

        /// <summary>
        /// 根据用户名取得Salt
        /// </summary>
        string GetSalt(string user_name);

        /// <summary>
        /// 根据用户名密码返回一个实体
        /// </summary>
        Models.Manager GetModel(string user_name, string password);

        /// <summary>
        /// 根据用户名密码返回一个实体
        /// </summary>
        Models.Manager GetModel(string user_name, string password, bool is_encrypt);
        /// <summary>
        /// 查询管理员
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Models.Manager GetModel(int id);
        int Add(Models.Manager model);
        bool Update(Models.Manager model);
        bool Delete(int id);
        /// <summary>
        /// 使用where子句执行查询，并将结果映射到具有Paging的强类型List
        /// </summary>
        /// <param name="pageNumber">页码</param>
        /// <param name="rowsPerPage">每页显示数据</param>
        /// <param name="conditions">查询条件</param>
        /// <param name="orderby">排序</param>
        /// <param name="parameters">参数</param>
        /// <returns></returns>
        List<Models.Manager> GetList(int pageNumber, int rowsPerPage, string conditions, string orderby, object parameters = null);
        int RecordCount(string conditions, object parameters = null);
    }
}